﻿using System;
using System.Collections.Generic;
using FluorineFx;
using Neturion.Dados;
using Neturion.Fachadas;

namespace Neturion.Servicos
{
    [RemotingService]
    public class ServicoUsuario
    {
        public Usuario Inserir(Usuario usuario, Usuario usuarioPermissao, Sistema sistema)
        {
            return Fachada.GetInstancia().Inserir(usuario, usuarioPermissao, sistema);
        }

        public Usuario Atualizar(Usuario usuario, Usuario usuarioPermissao, Sistema sistema)
        {
            return Fachada.GetInstancia().Atualizar(usuario, usuarioPermissao, sistema);
        }

        public void Excluir(Usuario usuario, Usuario usuarioPermissao, Sistema sistema)
        {
            Fachada.GetInstancia().Excluir(usuario, usuarioPermissao, sistema);
        }

        public Usuario ObterUsuarioPorId(int id, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterUsuarioPorId(id, usuarioPermissao);
        }

        public IList<Usuario> ObterTodosUsuarios(int inicio, int quantidade, int quantidadeMinima, string login, DateTime? inicioVigenciaDe, DateTime? inicioVigenciaAte, DateTime? fimVigenciaDe,
          DateTime? fimVigenciaAte, Sistema sistema, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterTodosUsuarios(inicio, quantidade, quantidadeMinima, login, inicioVigenciaDe, inicioVigenciaAte, fimVigenciaDe, fimVigenciaAte, sistema, usuarioPermissao);
        }

        public Usuario ObterUsuarioPorLogin(string login)
        {
            return Fachada.GetInstancia().ObterUsuarioPorLogin(login);
        }

        public Usuario ObterUsuarioPorLoginSenha(string login, string senha)
        {
            return Fachada.GetInstancia().ObterUsuarioPorLoginSenha(login, senha);
        }

        public bool EfetuarLogin(Usuario usuario)
        {
            return Fachada.GetInstancia().EfetuarLogin(usuario);
        }

        public bool EfetuarLogout(Usuario usuario)
        {
            return Fachada.GetInstancia().EfetuarLogout(usuario);
        }
    }
}